package com.ctshk.rpc.system.service;

import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.system.dto.SysSupplierOrderMsgPageDTO;
import com.ctshk.rpc.system.req.SysSendStationInfoMsgReq;
import com.ctshk.rpc.system.req.SysSupplierOrderMsgAddReq;
import com.ctshk.rpc.system.req.SysSupplierOrderMsgDelReq;
import com.ctshk.rpc.system.req.SysSupplierOrderMsgPageReq;

/**
 * <p>
 *  分配管理服务类
 * </p>
 *
 * @author 姜斌文
 * @since 2021-03-30
 */
public interface ISysAssignmentMgtService {
    /**
     * 新增分配管理
     *
     * @param obj   分配管理参数
     * @param userId    用户ID
     */
    void add(SysSupplierOrderMsgAddReq obj, Long userId);

    /**
     * 软删除分配管理
     *
     * @param obj   获取供应商预订单消息规则表主键ID
     */
    void delete(SysSupplierOrderMsgDelReq obj, Long userId);

    /**
     * 修改分配管理
     *
     * @param obj 分配管理对象
     * @param userId     用户id
     */
    void update(SysSupplierOrderMsgAddReq obj, Long userId);
    /**
     * 分配管理列表查询
     * @param supplierOrderMsgPageReq 查询参数
     * @param tokenUser  登录用户
     * @return 分配管理列表
     */
    PageResponse<SysSupplierOrderMsgPageDTO> assignmentMgtList(SysSupplierOrderMsgPageReq supplierOrderMsgPageReq, TokenUser tokenUser);

    /**
     * 发送站内信息
     * @param obj 入参对象
     * @param userId 用户id
     */
	void sendStationInfo(SysSendStationInfoMsgReq obj, Long userId);

    /**
     * 根据类型获取轮询的用户ID
     * @param type 类型-1：酒店预订;2：机票预订;3：火车票预订;4：巴士预订;5：船票预订;6：景点门票预订;7：保险预订;8：机场快线预订;9：签证预订;10：当地玩乐预订;11：商品预订;12：供应商预订
     * @return Long用户ID
     */
	Long getPollingUserId(Long type);
}
